BASE_PROVEEDORES = BASE_URL + 'proveedores/';
jsonConfigs = [
    {
        text:'Nuevo',
        iconCls:'button_add',
        handler: function(){
            Ext.Ajax.request({
                url: BASE_PROVEEDORES + 'add',
                method:'POST',
                params:{gridPanelId:prefijoTabPanel + '<?php echo $idTab?>'},
                success: function(response,options){
                    scriptEvaluator(response.responseText);
                },
                failure: function(response,options){
                    Ext.MessageBox.show({
                        title: 'ERROR',
                        msg: 'Ha ocurrido un error durante la conexión. Por favor intente de nuevo.',
                        icon: Ext.MessageBox.ERROR,
                        buttons: Ext.Msg.OK
                    });
                },
                scope:this
            });
        }
    },
    {
        text:'Sincronizar',
        iconCls:'button_sync',
        handler: function(){
            var grid = Ext.getCmp(prefijoTabPanel + '<?php echo $idTab?>');
            var store = grid.getStore();
            var myMask = new Ext.LoadMask(grid.getEl(), {msg:"Estamos guardando sus datos. Por favor Espere..."});
            myMask.show();
            store.sync();
            myMask.destroy();
        }
    }
];
var proveedoresStore = Ext.create('Ext.data.JsonStore',{
    proxy: {
        type:'ajax',
        actionMethods:{read:'POST'},
        api:{
            read: BASE_PROVEEDORES+'paginateList',
            update: BASE_PROVEEDORES+'saveDataGrid'
        },
        reader:{type: 'json',root: 'data',totalProperty: 'total',idProperty: 'name'},
        writer:{encode: true,type: 'json',root: 'data'},
        listeners: {
            exception: function(proxy, response, operation){
                Ext.MessageBox.show({
                    title: 'ERROR',
                    msg: operation.getError(),
                    icon: Ext.MessageBox.ERROR,
                    buttons: Ext.Msg.OK
                });
            }
        }
    },
    fields: ['id','nombre','direccion','desde','email','telefono'],
    autoLoad:true,
    pageSize: <?php echo $pageSize?>
});
var pager = Ext.create('Ext.PagingToolbar',{
    store: proveedoresStore,
    displayInfo: true,
    displayMsg: '{0} - {1} de {2} Proveedores',
    emptyMsg: 'No existen registros para mostrar'
});
Ext.create('Ext.grid.GridPanel',{
    id: prefijoTabPanel + '<?php echo $idTab?>',
    title:'Módulo de <?php echo $title?>',
    closable: true,
    store: proveedoresStore,
    columns: [
        {xtype: 'rownumberer'},
        {header: 'Nombre',dataIndex: 'nombre',field: {xtype: 'textfield',allowBlank: false}},
        {header: 'Dirección',dataIndex: 'direccion',field: {xtype: 'textfield',allowBlank: false}},
        {
            header: 'Teléfonos',
            dataIndex: 'telefono',
            field: {
                xtype: 'textfield',
                allowBlank: false
            }
        },
        {header: 'Email',dataIndex: 'email',field: {xtype: 'textfield',vtype: 'email',allowBlank: true}},//, flex: 1
        {header: 'Desde',dataIndex: 'desde'},
    ],
    plugins: [Ext.create('Ext.grid.plugin.CellEditing', {clicksToEdit: 2})],
    border: false,
    stripeRows: true,
    autoDestroy:true,
    bbar: pager,
    tbar: createToolBar(jsonConfigs)
});